package com.ruoyi.server.api.memberUserManagement.service;

import java.util.List;

import com.ruoyi.common.exception.errorCode.CommonException;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.server.api.memberUserManagement.domain.MemberUserManagement;
import com.ruoyi.server.api.memberUserManagement.model.MemberUserAndBindCardModel;

/**
 * 会员用户Service接口
 *
 * @author zmh
 * @date 2024-06-11
 */
public interface IMemberUserManagementService
{
    /**
     * 查询会员用户
     *
     * @param id 会员用户主键
     * @return 会员用户
     */
    public MemberUserManagement selectMemberUserManagementById(Long id);

    /**
     * 查询会员用户列表
     *
     * @param memberUserManagement 会员用户
     * @return 会员用户集合
     */
    public List<MemberUserManagement> selectMemberUserManagementList(MemberUserManagement memberUserManagement);
    /**
     * @param id venueUniqueIdentifier
     * @Author ZMH
     * @Description 根据id查询单个会员id
     * @Date 2024/6/11 11:01
     * @Return com.ruoyi.server.api.memberUserManagement.model.MemberUserAndTypeModel
     */
    MemberUserAndBindCardModel getById(Integer id, String venueUniqueIdentifier);


    /**
     * 新增会员用户
     *
     * @param memberUserAndBindCardModel 会员用户
     * @return 结果
     */
    public AjaxResult insertMemberUserManagement(MemberUserAndBindCardModel memberUserAndBindCardModel) throws CommonException;

    /**
     * 修改会员用户
     *
     * @param memberUserAndBindCardModel 会员用户
     * @return 结果
     */
    public AjaxResult updateMemberUserManagement(MemberUserAndBindCardModel memberUserAndBindCardModel);

    /**
     * 批量删除会员用户
     *
     * @param ids 需要删除的会员用户主键集合
     * @return 结果
     */
    public int deleteMemberUserManagementByIds(Long[] ids);

    /**
     * 删除会员用户信息
     *
     * @param id 会员用户主键
     * @return 结果
     */
    public int deleteMemberUserManagementById(Long id);

    /**
     * @param membershipCardNumber
     * @Author hjh
     * @Description 根据卡号获取会员信息
     * @Date 2024/6/12 21:37
     * @Return com.ruoyi.server.api.memberUserManagement.domain.MemberUserManagement
     */
    public AjaxResult selectUserInfoByNumid(String membershipCardNumber);

    /**
    * @Author hjh
    * @Description 查询当天入场人数
    * @Date 2024/6/13 10:43
    * @Return com.ruoyi.common.core.domain.AjaxResult
    * @param currentDate
    */
    public AjaxResult selectEntranceNumber (String currentDate);

    /**
    * @Author hjh
    * @Description 查看用户是否入场
    * @Date 2024/6/17 11:03
    * @Return com.ruoyi.common.core.domain.AjaxResult
    * @param membershipCardNumber
    */
    public AjaxResult userIfEntrance(String membershipCardNumber) ;
    /**
    * @Author hjh
    * @Description  查看用户是否是私教
    * @Date 2024/6/17 11:03
    * @Return com.ruoyi.common.core.domain.AjaxResult
    * @param membershipCardNumber
    */
    public AjaxResult selectIfPersonalTrainer (String membershipCardNumber);
    /**
    * @Author hjh
    * @Description 判断会员卡是否有会员
    * @Date 2024/6/17 14:18
    * @Return com.ruoyi.common.core.domain.AjaxResult
    * @param membershipCardNumber
    */
    public AjaxResult ifMemberCardBind (String membershipCardNumber);
}
